package model;

import datalayer.abstractFactory.DAOFactory;


public class Werknemer implements Comparable<Werknemer>{
	/*
	 * Variables
	 */
	public Werknemer selectedwerknemer;
	private int WerknemerId;
	private String Voornaam;
	private String Tussenvoegsel;
	private String Achternaam;
	private String Email;
	private String Telefoonnummer;
	private String Functie;
	
	/*
	 * Constructor using fiels
	 */
	public Werknemer() {
		
	}
	
	public Werknemer(int werknemerId, String voornaam, String tussenvoegsel,
			String achternaam, String email, String telefoonnummer,
			String functie) {
		WerknemerId = werknemerId;
		Voornaam = voornaam;
		Tussenvoegsel = tussenvoegsel;
		Achternaam = achternaam;
		Email = email;
		Telefoonnummer = telefoonnummer;
		Functie = functie;
	}
	
	public Werknemer(String voornaam, String tussenvoegsel, String achternaam,
			String email, String telefoonnummer, String functie) {
		Voornaam = voornaam;
		Tussenvoegsel = tussenvoegsel;
		Achternaam = achternaam;
		Email = email;
		Telefoonnummer = telefoonnummer;
		Functie = functie;
	}

	public Werknemer(int werknemerId){
		WerknemerId = werknemerId;
	}

	public Werknemer(String voornaam) {
		Voornaam = voornaam;
	}

	/*
	 * Methodes
	 */
	
	public boolean deleteWerknemer(Werknemer werknemer){
		return DAOFactory.getFactory().getDAOWerknemer().delete(werknemer);
	}
	
	@Override
	public int hashCode() {
		return WerknemerId; 
	}

	@Override
	public boolean equals(Object obj) {
		Werknemer w = (Werknemer)obj;
		if(Voornaam.equalsIgnoreCase(w.getVoornaam()) && Tussenvoegsel.equalsIgnoreCase(w.getTussenvoegsel()) 
				&& Achternaam.equalsIgnoreCase(w.getAchternaam()) && Email.equalsIgnoreCase(w.getEmail()) 
				&& Telefoonnummer.equalsIgnoreCase(w.getTelefoonnummer()) && Functie.equalsIgnoreCase(w.getFunctie())){
			return true;
		}
		else{
			return false;
		}
	}

	@Override
	public String toString() {
		return "WerknemerId=" + WerknemerId + ", Voornaam="
				+ Voornaam + ", Tussenvoegsel=" + Tussenvoegsel
				+ ", Achternaam=" + Achternaam + ", Email=" + Email
				+ ", Telefoonnummer=" + Telefoonnummer + ", Functie=" + Functie;
	}
	@Override
	public int compareTo(Werknemer o) {
		int achternaam = Achternaam.compareTo(o.getAchternaam());
		int voornaam = Voornaam.compareTo(o.getVoornaam());
		boolean werknemerid = WerknemerId == o.getWerknemerId();
//		
//		if(agetal == 0){
//			if(vgetal == 0){
//				if(WerknemerId == o.getWerknemerId()){
//					return 0;
//				}
//				return WerknemerId;
//			}
//			
//			else{
//				return vgetal;
//			}
//		}
//		else{
//			return agetal;
//		}
//		
		
		if(achternaam == 0){
			if(voornaam == 0){
				if(werknemerid){
					return 0;
				}
				else{
					return WerknemerId;
				}
			}
			else{
				return voornaam;
			}
		}
		else{
			return achternaam;
		}
	}
	
	/*
	 * Getters / Setters
	 */
	public int getWerknemerId() {
		return WerknemerId;
	}

	public void setWerknemerId(int werknemerId) {
		WerknemerId = werknemerId;
	}

	public String getVoornaam() {
		return Voornaam;
	}

	public void setVoornaam(String voornaam) {
		Voornaam = voornaam;
	}

	public String getTussenvoegsel() {
		return Tussenvoegsel;
	}

	public void setTussenvoegsel(String tussenvoegsel) {
		Tussenvoegsel = tussenvoegsel;
	}

	public String getAchternaam() {
		return Achternaam;
	}

	public void setAchternaam(String achternaam) {
		Achternaam = achternaam;
	}

	public String getEmail() {
		return Email;
	}

	public void setEmail(String email) {
		Email = email;
	}

	public String getTelefoonnummer() {
		return Telefoonnummer;
	}

	public void setTelefoonnummer(String telefoonnummer) {
		Telefoonnummer = telefoonnummer;
	}

	public String getFunctie() {
		return Functie;
	}

	public void setFunctie(String functie) {
		Functie = functie;
	}
	
}
